package com.attendance.www.hr.service;

import java.util.Date;
import java.util.List;

import com.attendance.www.hr.beans.RetroactiveBean;
import com.attendance.www.hr.beans.RetroactivePageBean;
import com.attendance.www.hr.entitys.Attendance;

public interface IRetroactiveService {
	/**
	 * 新增考勤补签
	 * @param retroactive
	 * @return
	 */
	public boolean saveRetroactive(RetroactiveBean retroactiveBean,Integer employeeId);
	
	/**
	 * 查询可以考勤补签的信息
	 * @param retroactive
	 * @param startNum
	 * @param pageCount
	 * @return
	 */
	public RetroactivePageBean getRetroactiveList(Integer employeeId, Date attendanceDateStart, Date attendanceDateEnd, Integer startNum, Integer pageCount);
	
	/**
	 * 获取补签次数
	 * @param employeeId
	 * @param attendanceDateStart
	 * @param attendanceDateEnd
	 * @return
	 */
	public int getRetroactiveNum(Integer employeeId,Date attendanceDateStart, Date attendanceDateEnd);
	
	/**
	 * 获取包括在申请中的补签次数
	 * @param employeeId
	 * @param attendanceDateStart
	 * @param attendanceDateEnd
	 * @return
	 */
	public int getRetroactiveNumAble(Integer employeeId,Date attendanceDateStart, Date attendanceDateEnd);
	
	/**
	 * 根据补签ID中的考勤ID，查询对应数据
	 * @param attendanceId
	 * @return
	 */
	public Attendance getAttendanceByAttendanceId(Integer retroactiveId);
	
	/**
	 * HR获取管理公司的补签信息
	 * @param retroactiveBean
	 * @return
	 */
	public RetroactivePageBean getRetroactiveListByHR(RetroactiveBean retroactiveBean);
	
	/**
	 * 查看HR分配的公司
	 * @param retroactiveBean
	 * @param employeeId
	 * @return
	 */
	public RetroactiveBean getRetroactiveBeanByHR(RetroactiveBean retroactiveBean, Integer employeeId);
	/**
	 * 一键补签
	 * @param date
	 * @return
	 */
	public boolean saveOnceRetroactive(RetroactiveBean retroacticeBean);
	
	/**
	 * 跨天补签
	 * @param retroacticeBean
	 * @return
	 */
	public boolean saveAcrossRetroactive(RetroactiveBean retroacticeBean);
	
	/**
	 * 获取某天能撤回的补签申请List
	 * @param retroactiveBean
	 * @return
	 */
	public List<RetroactiveBean> getRetroactives(RetroactiveBean retroactiveBean);
	
}
